﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MealBooking.Core.Models.Dishes;
using MealBooking.Core.Models.Meals;

namespace MealBooking.Core.Services.Interface.DishService
{
    public interface IDishService
    {
        #region Dish
        List<Dish> AllDishes();
        List<Dish> DishesWithoutDishCategory();
        Dish DishDetail(string dishId);
        List<Dish> DishDetails(List<string> dishIds);
        Dish IsDishNameInUse(string dishName);
        Dish AddDish(Dish newDish);
        Dish UpdateDish(Dish dish);
        #endregion

        #region Dishes in Dish Category
        List<Dish> DishesInDishCategory(string DishCategoryId);
        void UpdateDishesInDishCategory(DishCategory dishCategory);
        #endregion

        #region Dishes in Meal Category
        Dictionary<DishCategory, List<Dish>> DishesInMealCategory(string mealCategoryId);
        #endregion

        #region DishCategory
        List<DishCategory> AllDishCategories();
        DishCategory DishCategoryDetail(string dishCategoryId);
        List<DishCategory> DishCategoryDetails(List<string> dishCategoryIds);
        DishCategory IsDishCategoryNameInUse(string newDishCategoryName);
        DishCategory AddDishCategory(DishCategory newDishCategory);
        DishCategory UpdateDishCategory(DishCategory dshCategory);
        #endregion

        #region DishCategories in MealCategory
        List<DishCategory> DishCategoriesInMealCategory(string mealCategoryId);
        void UpdateDishCategoriesInMealCategory(MealCategory mealCategory);
        #endregion
    }
}
